package com.kitty.game.guard.model;

import lombok.Data;

import java.util.HashSet;
import java.util.Set;

/**
 * 守护
 */
@Data
public class Guard {
    private int id;

    private int hostId;

    private short icon;

    private String name;

    private String nickName;

    private short level;

    private short intimacy;

    private short developLevel;

    private short con;

    private short str;

    private short dex;

    private short wiz;

    private short metal;

    private short wood;

    private short water;

    private short fire;

    private short earth;

    private byte isFight;

    private boolean attack;

    private short color;

    private byte type;

    private byte pos;
    /**门派*/
    private short family;
    /**辅助技能列表*/
    private Set<Integer> assistSkills = new HashSet<>();
    /**攻击技能列表*/
    private Set<Integer> attackSkills = new HashSet<>();

    //后加
    public void setId(int id) {
        this.id = id;
    }

    public void setHostId(int hostId) {
        this.hostId = hostId;
    }

    public void setIcon(short icon) {
        this.icon = icon;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public void setLevel(short level) {
        this.level = level;
    }

    public void setIntimacy(short intimacy) {
        this.intimacy = intimacy;
    }

    public void setDevelopLevel(short developLevel) {
        this.developLevel = developLevel;
    }

    public void setCon(short con) {
        this.con = con;
    }

    public void setStr(short str) {
        this.str = str;
    }

    public void setDex(short dex) {
        this.dex = dex;
    }

    public void setWiz(short wiz) {
        this.wiz = wiz;
    }

    public void setMetal(short metal) {
        this.metal = metal;
    }

    public void setWood(short wood) {
        this.wood = wood;
    }

    public void setWater(short water) {
        this.water = water;
    }

    public void setFire(short fire) {
        this.fire = fire;
    }

    public void setEarth(short earth) {
        this.earth = earth;
    }

    public void setIsFight(byte isFight) {
        this.isFight = isFight;
    }

    public void setAttack(boolean attack) {
        this.attack = attack;
    }

    public void setColor(short color) {
        this.color = color;
    }

    public void setType(byte type) {
        this.type = type;
    }

    public void setPos(byte pos) {
        this.pos = pos;
    }

    public void setFamily(short family) {
        this.family = family;
    }

    public void setAssistSkills(Set<Integer> assistSkills) {
        this.assistSkills = assistSkills;
    }

    public void setAttackSkills(Set<Integer> attackSkills) {
        this.attackSkills = attackSkills;
    }

    public boolean equals(Object o) {
        if (o == this)
            return true;
        if (!(o instanceof com.kitty.game.guard.model.Guard))
            return false;
        com.kitty.game.guard.model.Guard other = (com.kitty.game.guard.model.Guard)o;
        if (!other.canEqual(this))
            return false;
        if (getId() != other.getId())
            return false;
        if (getHostId() != other.getHostId())
            return false;
        if (getIcon() != other.getIcon())
            return false;
        Object this$name = getName(), other$name = other.getName();
        if ((this$name == null) ? (other$name != null) : !this$name.equals(other$name))
            return false;
        Object this$nickName = getNickName(), other$nickName = other.getNickName();
        if ((this$nickName == null) ? (other$nickName != null) : !this$nickName.equals(other$nickName))
            return false;
        if (getLevel() != other.getLevel())
            return false;
        if (getIntimacy() != other.getIntimacy())
            return false;
        if (getDevelopLevel() != other.getDevelopLevel())
            return false;
        if (getCon() != other.getCon())
            return false;
        if (getStr() != other.getStr())
            return false;
        if (getDex() != other.getDex())
            return false;
        if (getWiz() != other.getWiz())
            return false;
        if (getMetal() != other.getMetal())
            return false;
        if (getWood() != other.getWood())
            return false;
        if (getWater() != other.getWater())
            return false;
        if (getFire() != other.getFire())
            return false;
        if (getEarth() != other.getEarth())
            return false;
        if (getIsFight() != other.getIsFight())
            return false;
        if (isAttack() != other.isAttack())
            return false;
        if (getColor() != other.getColor())
            return false;
        if (getType() != other.getType())
            return false;
        if (getPos() != other.getPos())
            return false;
        if (getFamily() != other.getFamily())
            return false;
        Object this$assistSkills = getAssistSkills(), other$assistSkills = other.getAssistSkills();
        if ((this$assistSkills == null) ? (other$assistSkills != null) : !this$assistSkills.equals(other$assistSkills))
            return false;
        Object this$attackSkills = getAttackSkills(), other$attackSkills = other.getAttackSkills();
        return !((this$attackSkills == null) ? (other$attackSkills != null) : !this$attackSkills.equals(other$attackSkills));
    }

    protected boolean canEqual(Object other) {
        return other instanceof com.kitty.game.guard.model.Guard;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        result = result * 59 + getId();
        result = result * 59 + getHostId();
        result = result * 59 + getIcon();
        Object $name = getName();
        result = result * 59 + (($name == null) ? 43 : $name.hashCode());
        Object $nickName = getNickName();
        result = result * 59 + (($nickName == null) ? 43 : $nickName.hashCode());
        result = result * 59 + getLevel();
        result = result * 59 + getIntimacy();
        result = result * 59 + getDevelopLevel();
        result = result * 59 + getCon();
        result = result * 59 + getStr();
        result = result * 59 + getDex();
        result = result * 59 + getWiz();
        result = result * 59 + getMetal();
        result = result * 59 + getWood();
        result = result * 59 + getWater();
        result = result * 59 + getFire();
        result = result * 59 + getEarth();
        result = result * 59 + getIsFight();
        result = result * 59 + (isAttack() ? 79 : 97);
        result = result * 59 + getColor();
        result = result * 59 + getType();
        result = result * 59 + getPos();
        result = result * 59 + getFamily();
        Object $assistSkills = getAssistSkills();
        result = result * 59 + (($assistSkills == null) ? 43 : $assistSkills.hashCode());
        Object $attackSkills = getAttackSkills();
        return result * 59 + (($attackSkills == null) ? 43 : $attackSkills.hashCode());
    }

    public String toString() {
        return "Guard(id=" + getId() + ", hostId=" + getHostId() + ", icon=" + getIcon() + ", name=" + getName() + ", nickName=" + getNickName() + ", level=" + getLevel() + ", intimacy=" + getIntimacy() + ", developLevel=" + getDevelopLevel() + ", con=" + getCon() + ", str=" + getStr() + ", dex=" + getDex() + ", wiz=" + getWiz() + ", metal=" + getMetal() + ", wood=" + getWood() + ", water=" + getWater() + ", fire=" + getFire() + ", earth=" + getEarth() + ", isFight=" + getIsFight() + ", attack=" + isAttack() + ", color=" + getColor() + ", type=" + getType() + ", pos=" + getPos() + ", family=" + getFamily() + ", assistSkills=" + getAssistSkills() + ", attackSkills=" + getAttackSkills() + ")";
    }

    public int getId() {
        return this.id;
    }

    public int getHostId() {
        return this.hostId;
    }

    public short getIcon() {
        return this.icon;
    }

    public String getName() {
        return this.name;
    }

    public String getNickName() {
        return this.nickName;
    }

    public short getLevel() {
        return this.level;
    }

    public short getIntimacy() {
        return this.intimacy;
    }

    public short getDevelopLevel() {
        return this.developLevel;
    }

    public short getCon() {
        return this.con;
    }

    public short getStr() {
        return this.str;
    }

    public short getDex() {
        return this.dex;
    }

    public short getWiz() {
        return this.wiz;
    }

    public short getMetal() {
        return this.metal;
    }

    public short getWood() {
        return this.wood;
    }

    public short getWater() {
        return this.water;
    }

    public short getFire() {
        return this.fire;
    }

    public short getEarth() {
        return this.earth;
    }

    public byte getIsFight() {
        return this.isFight;
    }

    public boolean isAttack() {
        return this.attack;
    }

    public short getColor() {
        return this.color;
    }

    public byte getType() {
        return this.type;
    }

    public byte getPos() {
        return this.pos;
    }

    public short getFamily() {
        return this.family;
    }

    public Set<Integer> getAssistSkills() {
        return this.assistSkills;
    }

    public Set<Integer> getAttackSkills() {
        return this.attackSkills;
    }


}
